diff options
Diffstat (limited to 'app/[lng]/evcp/(evcp)/approval/line/page.tsx')
| -rw-r--r-- | app/[lng]/evcp/(evcp)/approval/line/page.tsx | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/app/[lng]/evcp/(evcp)/approval/line/page.tsx b/app/[lng]/evcp/(evcp)/approval/line/page.tsx new file mode 100644 index 00000000..435d1071 --- /dev/null +++ b/app/[lng]/evcp/(evcp)/approval/line/page.tsx @@ -0,0 +1,68 @@ +import * as React from 'react'; +import { type Metadata } from 'next'; +import { Shell } from '@/components/shell'; +import { DataTableSkeleton } from '@/components/data-table/data-table-skeleton'; +import { type SearchParams } from '@/types/table'; +import { getValidFilters } from '@/lib/data-table'; + +import { getApprovalLineList } from '@/lib/approval-line/service'; +import { SearchParamsApprovalLineCache } from '@/lib/approval-line/validations'; +import { ApprovalLineTable } from '@/lib/approval-line/table/approval-line-table'; + +export const metadata: Metadata = { + title: '결재선 관리', + description: '결재용 결재선을 관리합니다.', +}; + +interface PageProps { + searchParams: SearchParams; +} + +export default async function ApprovalLinePage({ searchParams }: PageProps) { + const search = SearchParamsApprovalLineCache.parse(searchParams); + // getValidFilters 반환값이 undefined 인 경우 폴백 + const validFilters = getValidFilters(search.filters) ?? []; + + const promises = Promise.all([ + getApprovalLineList({ + ...search, + filters: validFilters, + }), + ]); + + return ( + <Shell className="gap-2"> + <div className="flex items-center justify-between space-y-2"> + <div className="flex items-center justify-between space-y-2"> + <div> + <div className="flex items-center gap-2"> + <h2 className="text-2xl font-bold tracking-tight">결재선 관리</h2> + </div> + </div> + </div> + </div> + + {/* 테이블 */} + <React.Suspense + fallback={ + <DataTableSkeleton + columnCount={6} + searchableColumnCount={1} + filterableColumnCount={2} + cellWidths={[ + '10rem', + '20rem', + '30rem', + '12rem', + '12rem', + '8rem', + ]} + shrinkZero + /> + } + > + <ApprovalLineTable promises={promises} /> + </React.Suspense> + </Shell> + ); +} |
